curl_multi_remove_handle
移除cURL批处理句柄资源中的某个句柄资源
此函数从 PHP 5.1.0 版本开始支持。
curl_multi_remove_handle() 函数用于从多个 cURL 句柄的 multi 句柄中移除一个单独的 cURL 句柄。这通常用于处理并发请求时,当一个请求完成或需要被移除时,使用此函数可以释放资源。
bool curl_multi_remove_handle ( resource $multi_handle , resource $ch )
如果成功,返回 true;如果失败,返回 false。
以下是使用 curl_multi_remove_handle() 函数的示例:
<?php // 初始化 cURL 多线程句柄 $mh = curl_multi_init(); <p>// 创建两个 cURL 句柄<br> $ch1 = curl_init("<a rel="noopener" target="_new" class="" href="https://www.example.com">https://www.example.com</a>");<br> $ch2 = curl_init("<a rel="noopener" target="_new" class="" href="https://www.example2.com">https://www.example2.com</a>");</p> <p>// 将句柄添加到 multi 句柄中<br> curl_multi_add_handle($mh, $ch1);<br> curl_multi_add_handle($mh, $ch2);</p> <p>// 执行多线程请求<br> $active = null;<br> do {<br> $mrc = curl_multi_exec($mh, $active);<br> } while ($active);</p> <p>// 从 multi 句柄中移除第一个 cURL 句柄<br> curl_multi_remove_handle($mh, $ch1);</p> <p>// 继续执行其他请求,直到完成<br> curl_multi_exec($mh, $active);</p> <p>// 关闭所有 cURL 句柄<br> curl_multi_close($mh);<br> curl_close($ch2);<br> ?><br>
在上面的代码中,首先创建了一个 multi 句柄并添加了两个 cURL 句柄。然后执行并发请求,接着通过 curl_multi_remove_handle() 移除第一个请求的 cURL 句柄。当移除一个句柄后,剩下的请求继续执行,最后关闭所有句柄。